/*
 * Student.java
 *
 * This program represents attributes such as name, address and age of a student,
 * and getter and setter methods that will be annotated at the class level and
 * method level.
 *
 * Copyright 2007 Aptech Software Limited. All rights reserved.
 */

package customstudentannotation;

/**
 * Declare class level annotation.
 */
@Description(description = "An annotation test class")
@StringValue(str = "Student", val = 99)

/**
 * Student class stores information about a student and allows the user to
 * display student attributes.
 * @author vincent
 */
public class Student {
    
    /**
     * Creates a new instance of Student
     */
    public Student() {
        
    }
    
    /**
     * Parameterized Constructor of Student class.
     * @param nm This will store the name of the student.
     * @param addr This will store the address of the student.
     * @param a This will store the age of the student.
     */
    public Student(String nm, String addr, int a) {
        this.name = nm;
        this.address = addr;
        this.age = a;
    }
    
    /**
     * This method is invoked to retrieve the name of the student.
     * @return String returns the name of the student
     */
    public String getName() {
        return name;
    }
    
    /**
     * This method is invoked to retrieve the address of the student.
     * @return String returns the address of the student
     */
    public String getAddress() {
        return address;
    }
    
    /**
     * This method is invoked to retrieve the age of the student.
     * @return int returns the age of the student
     */
    public int getAge() {
        return age;
    }
    
    /**
     * This method is invoked to set the name of the student.
     * @param nm This will store the name of the student.
     */
    public void setName(String nm) {
        this.name = nm;
    }
    
    /**
     * This method is invoked to retrieve the address of the student.
     * @param addr This will store the address of the student.
     */
    public void setAddress(String addr) {
        this.address = addr;
    }
    
    /**
     * This method is invoked to retrieve the age of the student.
     * @param a This will store the age of the student.
     */
    public void setAge(int a) {
        this.age = a;
    }
    
    /**
     * String variable to store the name of the student.
     */
    private String name;
    
    /**
     * String variable to store the address of the student.
     */
    private String address;
    
    /**
     * Integer variable to store the age of the student.
     */
    int age;
}
